pnpm install --save-dev eslint @babel/eslint-parser
npm install --save-dev eslint prettier eslint-plugin-prettier eslint-config-prettier
简单示例
// .eslintrc.json
// .eslintrc.js
// .eslintignore
{
"parser": "@babel/eslint-parser",
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
},
"rules": {
"semi": 2
},
extends: [
'eslint:recommended',
'plugin:prettier/recommended', // 必须放在最后以覆盖其他配置
],
plugins: ['prettier'],
}
pnpm eslint --init
npx eslint yourfile.js
eslint --fix --ext .js,.jsx,.vue backend frontend
配置项
"semi" : ["error", "never"], // 不使用分号
"quotes" : ["error", "single"], // 单引号
"indent" : ["error", 2], // 缩进规则
"linebreak-style" : ["error", "unix"], // unix风格结尾
"comma-dangle" : "error", // 对象、数据组等字面量的项尾不能有逗号
"object-shorthand" : "error", // 对象内属性使用简明形式
"dot-notation" : "error", // 对象使用. []时优先以.表示
"no-multiple-empty-lines" : ["error", { "max": 1, "maxEOF": 1 }], // 最大空行
"no-multi-spaces" : "error", // 不能有多余的空格
"comma-spacing" : ["error", { "before": false, "after": true }], // 逗号空格
"spaced-comment" : ["error", "always"], // 注释空格
"keyword-spacing" : ["error", { "after": true }], // 关键字空格
"arrow-spacing" : "error", // 箭头函数空格
"no-trailing-spaces" : "error", // 禁用尾空格
"space-infix-ops" : ["error", {"int32Hint": false}], // 中缀操作符空格
"space-unary-ops" : ["error", { "words": true, "nonwords": false }], // 一元运算符的前/后加空格
"no-extra-parens" : "error", // 禁止多余括号
"array-bracket-spacing" : ["error", "always"], // 数组空格
"object-curly-spacing" : ["error", "always"], // 对象字面量空格
"key-spacing" : ["error", { "beforeColon": false, "afterColon": true }], // 对象冒号空格
"eqeqeq" : ["error", "always"], // 完全相等
"no-unused-vars" : ["off", {"vars": "all", "args": "after-used"}], // 不能有声明后未被使用的变量或参数
"no-var" : "error", // 禁用var
"prefer-const" : "warn", // 首选const
"no-const-assign" : "error", // const不可修改
"no-invalid-regexp" : "error", // 禁止无效的正则表达式
"radix" : "error", // parseint必须指定进制
"no-duplicate-case" : "error", // case不可重复
"no-duplicate-imports" : "error", // import不可重复
"no-return-assign" : "off", // return表达式规则
"no-else-return" : "error", // if包含return,不允许使用else
"no-empty-character-class": "error", // 正则不允许匹配空字符[]
"no-empty-pattern" : "error", // 不允许空解构
"no-dupe-keys" : "error", // 对象禁止重复key
"camelcase" : "off", // 驼峰
"consistent-return" : "off", // return 后面是否允许省略
"no-eval" : "error", // eval不可用
"complexity" : ["error",50] // 圈复杂度
prettier
.prettierrc
.prettierrc.json
npx prettier --write yourfile.js